package com.wjm.api.FileRead;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * Data:2022年07月10日
 * Author:wjm
 * Content: Reader(字符输入流抽象类) 和 FileReader实现类
 *
 *
 *  Reader是一个字符输入流的顶级父类，而FileReader是它的实现类，FileReader的直接父类是InputStreamReader(转换流)
 *
 *  使用字符流的原因：
 *            因为字节流在读取中是以字节为单位的，而一个中文字符在utf-8中占3个字节，在gbk中占2个字节，所以在读取的时候，会出现只读到一半就
 *            输出，会出现乱码，而字符流是以字符为单位的就不会出现这个问题。
 *
 *   Reader常用方法：
 *             public int read()
 *             public int read(char[] c)
 *             public void close()
 *
 */
public class FileReaderDemo {
    public static void main(String[] args) throws IOException {
        //创建字符流对象
        FileReader reader1 = new FileReader("a.txt");
        //创建字符流对象
        FileReader reader2 = new FileReader(new File("a.txt"));

        //声明结束标识
        int len;
        //声明存放数组
        char[] chars = new char[3];
        //读取内容
        while ((len = reader2.read(chars)) != -1){
            System.out.println(new String(chars,0,len));
        }
        //关闭流连接，释放资源
        reader2.close();

    }
}
